﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;

namespace Lib
{
    public class ITPair
    {
        public string itemset { get; set; }
        public List<TransactionValue>  infoName { get; set; }
        public List<string> tidset { get; set; }
        public List<int> tidsets { get; set; }
        public int support = 0;
        
        public BitArray bitsets { get; set; }
        
        public ITPair(string itemSet, List<string> tid)
        {
            itemset = itemSet;
            tidset = tid;
            support = tid.Count;
        }

        public ITPair(string itemSet, List<int> tid, int numTran)
        {
            itemset = itemSet;
            tidsets = tid;
            support = tid.Count;
            //numTrans = numTran;
           // bitsets = CreateBit(numTran, tid);
        }

        public ITPair(List<TransactionValue> itemSet, List<int> tid, int numTran)
        {
            infoName = itemSet;
            tidsets = tid;
            support = tid.Count;
           // bitsets = CreateBit(numTran, tid);

        }

        public BitArray CreateBit(int numTrans, List<string> tid)
        {
            BitArray bit = new BitArray(numTrans);

            for (int i = 0; i < bit.Count; i++)
            {
                int find = int.Parse(tid.Find(x => int.Parse(x) == (i + 1)));// tid.Find(x => int.Parse(x) == (i + 1));
                if (find != 0)
                    bit.Set(i, true);
                else
                    bit.Set(i, false);
            }
            return bit;
        }

        public BitArray CreateBit(int numTrans, List<int> tid)
        {
            BitArray bit = new BitArray(numTrans);

            for (int i = 0; i < bit.Count; i++)
            {
                int find = tid.Find(x => x == (i + 1));// tid.Find(x => int.Parse(x) == (i + 1));
                if (find != 0)
                    bit.Set(i, true);
                else
                    bit.Set(i, false);
            }
            return bit;
        }
    }
}
